4 Author: Andrés Mejía-Posada
6 Method: Dynamic programming
18 int g
[N
][2]; //g[i][j] = A donde me lleva el nodo i con la entrada j
20 for (int i
=0; i
<N
; ++i
){
22 cin
>> a
>> b
>> c
>> d
;
23 a
-= 'A', b
-= 'A', c
-= 'A';
33 unsigned long long dp
[m
+1][N
]; //dp[i][j] = cantidad de caminos de longitud i que terminan en el nodo j
34 memset(dp
, 0ULL, sizeof dp
);
35 dp
[0][0] = 1ULL; //Para llegar al nodo A hay un solo camino
36 for (int i
=0; i
<m
; ++i
){
37 for (int j
=0; j
<N
; ++j
){
38 dp
[i
+1][g
[j
][0]] += dp
[i
][j
];
39 dp
[i
+1][g
[j
][1]] += dp
[i
][j
];
43 unsigned long long answer
= 0;
44 for (int i
=0; i
<N
; ++i
){
45 if (special
.count(i
)){
49 cout
<< answer
<< endl
;